package com.yzkj.cpjxc.business.service;

import com.yzkj.cpjxc.business.framework.common.BusinessMap;
import com.yzkj.cpjxc.business.framework.common.Pager;
import com.yzkj.cpjxc.business.domain.SysUser;
import com.yzkj.cpjxc.business.domain.PingZheng;
import com.yzkj.cpjxc.business.domain.PingZhengQueryVo;
import com.yzkj.cpjxc.business.domain.PingZhengShowVo;
import com.yzkj.cpjxc.business.domain.ZhangTao;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 凭证管理 Service 接口
 */
public interface PingZhengService {
	
	/**
	 * 获取查询分页对象
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param pager
	 * @param queryVo
	 * @return
	 * @throws Exception
	 */
	public Pager<PingZhengShowVo> search(Pager<PingZhengShowVo> pager, PingZhengQueryVo queryVo) throws Exception;
	
	/**
	 * 新增凭证管理
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param pingZheng
	 * @return
	 * @throws Exception
	 */
	public BusinessMap create(PingZheng pingZheng) throws Exception;
	
	/**
	 * 判断是否存在
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param pingZheng 凭证管理
	 * @return
	 * @throws Exception
	 */
	public boolean isExists(PingZheng pingZheng) throws Exception;
	
	/**
	 * 根据ID获取凭证管理
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param uuid
	 * @return
	 * @throws Exception
	 */
	public PingZheng getById(String uuid) throws Exception;
	
	/**
	 * 编辑凭证管理
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param pingZheng 凭证管理
	 * @return
	 * @throws Exception
	 */
	public BusinessMap edit(HttpServletRequest request, PingZheng pingZheng, ZhangTao zt, SysUser sysUser, String pinjiecanshu, PingZheng result) throws Exception;
	
	/**
	 * 根据ID删除凭证管理
	 * @creator: shenghe.he
	 * 
	 * @modifier:
	 * @modifiedDate:
	 * @param uuid
	 * @return
	 * @throws Exception
	 */
	public boolean delete(String uuid) throws Exception;
	
	public Long getMaxPzh(PingZhengQueryVo queryVo) throws Exception;

	public void ziDongLianHaoDown(PingZhengQueryVo queryVo) throws Exception;

	public Long getPzCount(PingZhengQueryVo queryVo) throws Exception;

	public void setPzYjz(PingZhengQueryVo queryVo) throws Exception;

	public Pager<PingZhengShowVo> mingXiListAjaxPage(Pager<PingZhengShowVo> pager, PingZhengQueryVo queryVo, List<PingZhengQueryVo> parmList) throws Exception;

	public void ziDongLianHaoUp(PingZhengQueryVo queryVo) throws Exception;

	public BusinessMap addPingZheng(PingZheng pingZheng, String pinjiecanshu, SysUser sysUser, ZhangTao zt) throws Exception;

	public boolean deletePingZheng(PingZheng result, ZhangTao zt) throws Exception;

	public void deleteChildPingZheng(String pingZhengId) throws Exception;

}
